"""
参数化实现：方式1： 直接将 [(),(),()] 数据 传入到 expand() 中
实现步骤：
1. 导包。 from parameterized import parameterized
2. 在 “测试方法” 的上一行，添加 “装饰器” 调用 expand() 方法
   - 语法：`@parameterized.expand()`
3. 给 expand() 传入 [(), (), ()] 格式 的 测试数据。
4. 修改 测试方法的 形参列表，添加参数，必须与 [(), (), ()] 中每一组 () 里面的数据，一一对应(个数、顺序完全吻合)
5. 修改 测试方法 内部实现，使用 参数（使用了测试数据）。
"""
import unittest
from parameterized import parameterized  # 固定导包语法。


# 待测方法
def add(x, y):
    return x + y


# 组织测试数据：[(1, 1, 2), (1, 0, 1), (0, 0, 0)]

# 测试用例类
class TestAdd(unittest.TestCase):
    @parameterized.expand([(1, 1, 2), (1, 2, 3), (0, 0, 0)])
    def test01_add(self, a, b, expect):
        """参数化使用的测试方法"""
        res = add(a, b)
        self.assertEqual(expect, res)
